package com.pine.dbant.common.plugin.meta;


/**
 * @author xiaoyuan
 * @create 2021/12/6
 **/
public interface JdbcMetadataAnalysis extends MetadataAnalysis {


//    /**
//     * 获取指定数据库所有的schema集合
//     *
//     * @param catalog 数据库
//     * @return
//     */
//    Set<String> getSchemas(String catalog);
//
//
//    /**
//     * 获取表集合
//     *
//     * @param catalog    数据库
//     * @param schemaName schema
//     * @param tableTypes 表类型
//     * @return
//     */
//    List<Table> getTables(String catalog, String schemaName, String... tableTypes);
//
//    /**
//     * 获取表详情：包含表详情，索引，字段信息等
//     *
//     * @param catalog
//     * @param schemaName
//     * @param tableName
//     * @return
//     */
//    Table getTableDetail(String catalog, String schemaName, String tableName);
//
//    /**
//     * 获取字段信息
//     *
//     * @param catalog
//     * @param schemaName
//     * @param tableName
//     * @return
//     */
//    List<Field> getField(String catalog, String schemaName, String tableName);
//
//    List<PrimaryKey> getPrimaryKeys(String catalog, String schemaName, String tableName);
//
//    /**
//     * 获取索引信息
//     *
//     * @param catalog
//     * @param schemaName
//     * @return
//     */
//    List<Index> getIndexs(String catalog, String schemaName, String table);
//
//    /**
//     * 获取外键信息
//     *
//     * @param catalog
//     * @param schemaName
//     * @return
//     */
//    List<ForeignKey> getForeignKeys(String catalog, String schemaName, String table);
//
//    /**
//     * 获取存储过程
//     *
//     * @param catalog
//     * @param schemaName
//     * @return
//     */
//    List<Produce> getProduces(String catalog, String schemaName);
//
//    /**
//     * 获取函数
//     *
//     * @param catalog
//     * @param schemaName
//     * @return
//     */
//    List<Function> getFunctions(String catalog, String schemaName);
//
//    /**
//     * 获取触发器信息
//     *
//     * @param catalog
//     * @param schemaName
//     * @return
//     */
//    List<Trigger> getTriggers(String catalog, String schemaName);
//
//
//    /**
//     * 构建某个表的ddl语句
//     * @param catalog
//     * @param schemaName
//     * @param tableName
//     * @return
//     */
//     String buildDDL(String catalog, String schemaName, String tableName);
//
//
//    /**
//     * 构建改变的sql语句
//     * @param table
//     * @return
//     */
//     List<String> buildTableChangeSql(Table table);
//
//    /**
//     * 构建索引的改变sql语句
//     * @param index
//     * @return
//     */
//     List<String>  buildIndexChangeSql(Index index);




}
